package package02;

import org.junit.Test;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

/**
 * 作者: jack
 * 时间: 2020-07-14 09:26
 * 描述: Test 单元测试： 最小单元的测试（方法）
 */
public class TestEmp {

    private EmpDao empDao = new EmpDaoImp();

    @Test
    public void initTest() {
        DBUtil util = new DBUtil();
        util.init();
    }

    // 测试查询所有
    @Test
    public void findAllTest() {
        EmpDao empDao = new EmpDaoImp();
        List<Emp> list = empDao.findAll();
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i)); // emp => emp.toString()
        }
    }

    @Test
    public void findByIdTest() {
        Emp emp = empDao.findById(7369);
        System.out.println(emp);
    }

    @Test
    public void findCountTest() {
        int count = empDao.findCount();
        System.out.println(count);
    }

    @Test
    public void findAllByPageTest() {

        List<Emp> emps = empDao.findAllByPage(2, 5);

        for (int i = 0; i < emps.size(); i++) {
            System.out.println(emps.get(i));
        }
    }

    @Test
    public void saveTest() throws Exception {
        // 构建一个插入的对象，将数据封装在这个对象中
        Emp emp = new Emp();
        emp.setEmpNo(1001);
        emp.seteName("张三");
        emp.setJob("CLERK");
        emp.setMgr(7698);
        String dateStr = "1990-08-08";
        // 将 dateStr 转成 java.util.Date类型
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date hireDate = sdf.parse(dateStr);
        emp.setHireDate(hireDate);
        emp.setSal(5000.0);
        emp.setComm(200.0);
        emp.setDeptNo(30);
        empDao.save(emp);
    }

    @Test
    public void deleteByIDTest() {
        empDao.deleteByID(9000);
    }


    @Test
    public void updateByIdTest() {
        Emp emp = new Emp();
        emp.setSal(6000.0);
        emp.setEmpNo(9001);
        empDao.updateById(emp);
    }


    @Test
    public void findAllTest1() {
        Emp emp = new Emp();
        emp.setDeptNo(30);
        emp.setSal(1250.0);

        List<Emp> emps = empDao.findAll(emp);
        for (int i = 0; i < emps.size(); i++) {
            System.out.println(emps.get(i));
        }
    }

    @Test
    public void savePart() throws ParseException {
        // 构建一个插入的对象，将数据封装在这个对象中
        Emp emp = new Emp();
        emp.setEmpNo(1878);
        emp.setJob("Manager");
        String dateStr = "1990-08-08";
         //将 dateStr 转成 java.util.Date类型
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date hireDate = sdf.parse(dateStr);
        emp.setHireDate(hireDate);
        emp.setSal(5000.0);
        empDao.savePart(emp);
    }
}
